Enhanced Volume Trend Indicator with BB SqueezeEnhanced Volume Trend Indicator with BB Squeeze: Comprehensive Explanation
The visualization system allows traders to quickly scan multiple securities to identify high-probability setups without detailed analysis of each chart. The progression from squeeze to breakout, supported by volume trend confirmation, offers a systematic approach to identifying trading opportunities.
The script combines multiple technical analysis approaches into a comprehensive dashboard that helps traders make informed decisions by identifying high-probability setups while filtering out noise through its sophisticated confirmation requirements. It combines multiple technical analysis approaches into an integrated visual system that helps traders identify potential trading opportunities while filtering out false signals.
Core Features
1. Volume Analysis Dashboard
The indicator displays various volume-related metrics in customizable tables:
AVOL (After Hours + Pre-Market Volume): Shows extended hours volume as a percentage of the 21-day average volume with color coding for buying/selling pressure. Green indicates buying pressure and red indicates selling pressure.
Volume Metrics: Includes regular volume (VOL), dollar volume ($VOL), relative volume compared to 21-day average (RVOL), and relative volume compared to 90-day average (RVOL90D).
Pre-Market Data: Optional display of pre-market volume (PVOL), pre-market dollar volume (P$VOL), pre-market relative volume (PRVOL), and pre-market price change percentage (PCHG%).
2. Enhanced Volume Trend (VTR) Analysis
The Volume Trend indicator uses adaptive analysis to evaluate buying and selling pressure, combining multiple factors:
MACD (Moving Average Convergence Divergence) components
Volume-to-SMA (Simple Moving Average) ratio
Price direction and market conditions
Volume change rates and momentum
EMA (Exponential Moving Average) alignment and crossovers
Volatility filtering
VTR Visual Indicators
The VTR score ranges from 0-100, with values above 50 indicating bullish conditions and below 50 indicating bearish conditions. This is visually represented by colored circles:
"●" (Filled Circle):
Green: Strong bullish trend (VTR ≥ 80)
Red: Strong bearish trend (VTR ≤ 20)
"◯" (Hollow Circle):
Green: Moderate bullish trend (VTR 65-79)
Red: Moderate bearish trend (VTR 21-35)
"·" (Small Dot):
Green: Weak bullish trend (VTR 55-64)
Red: Weak bearish trend (VTR 36-45)
"○" (Medium Hollow Circle): Neutral conditions (VTR 46-54), shown in gray
In "Both" display mode, the VTR shows both the numerical score (0-100) alongside the appropriate circle symbol.
Enhanced VTR Settings
The Enhanced Volume Trend component offers several advanced customization options:
Adaptive Volume Analysis (volTrendAdaptive):
When enabled, dynamically adjusts volume thresholds based on recent market volatility
Higher volatility periods require proportionally higher volume to generate significant signals
Helps prevent false signals during highly volatile markets
Keep enabled for most trading conditions, especially in volatile markets
Speed of Change Weight (volTrendSpeedWeight, range 0-1):
Controls emphasis on volume acceleration/deceleration rather than absolute levels
Higher values (0.7-1.0): More responsive to new volume trends, better for momentum trading
Lower values (0.2-0.5): Less responsive, better for trend following
Helps identify early volume trends before they fully develop
Momentum Period (volTrendMomentumPeriod, range 2-10):
Defines lookback period for volume change rate calculations
Lower values (2-3): More responsive to recent changes, better for short timeframes
Higher values (7-10): Smoother, better for daily/weekly charts
Directly affects how quickly the indicator responds to new volume patterns
Volatility Filter (volTrendVolatilityFilter):
Adjusts significance of volume by factoring in current price volatility
High volume during high volatility receives less weight
High volume during low volatility receives more weight
Helps distinguish between genuine volume-driven moves and volatility-driven moves
EMA Alignment Weight (volTrendEmaWeight, range 0-1):
Controls importance of EMA alignments in final VTR calculation
Analyzes multiple EMA relationships (5, 10, 21 period)
Higher values (0.7-1.0): Greater emphasis on trend structure
Lower values (0.2-0.5): More focus on pure volume patterns
Display Mode (volTrendDisplayMode):
"Value": Shows only numerical score (0-100)
"Strength": Shows only symbolic representation
"Both": Shows numerical score and symbol together
3. Bollinger Band Squeeze Detection (SQZ)
The BB Squeeze indicator identifies periods of low volatility when Bollinger Bands contract inside Keltner Channels, often preceding significant price movements.
SQZ Visual Indicators
"●" (Filled Circle): Strong squeeze - high probability setup for an impending breakout
Green: Strong squeeze with bullish bias (likely upward breakout)
Red: Strong squeeze with bearish bias (likely downward breakout)
Orange: Strong squeeze with unclear direction
"◯" (Hollow Circle): Moderate squeeze - medium probability setup
Green: With bullish EMA alignment
Red: With bearish EMA alignment
Orange: Without clear directional bias
"-" (Dash): Gray dash indicates no squeeze condition (normal volatility)
The script identifies squeeze conditions through multiple methods:
Bollinger Bands contracting inside Keltner Channels
BB width falling to bottom 20% of recent range (BB width percentile)
Very narrow Keltner Channel (less than 5% of basis price)
Tracking squeeze duration in consecutive bars
Different squeeze strengths are detected:
Strong Squeeze: BB inside KC with tight BB width and narrow KC
Moderate Squeeze: BB inside KC with either tight BB width or narrow KC
No Squeeze: Normal market conditions
4. Breakout Detection System
The script includes two breakout indicators working in sequence:
4.1 Pre-Breakout (PBK) Indicator
Detects potential upcoming breakouts by analyzing multiple factors:
Squeeze conditions lasting 2-3 bars or more
Significant price ranges
Strong volume confirmation
EMA/MACD crossovers
Consistent price direction
PBK Visual Indicators
"●" (Filled Circle): Detected pre-breakout condition
Green: Likely upward breakout (bullish)
Red: Likely downward breakout (bearish)
Orange: Direction not yet clear, but breakout likely
"-" (Dash): Gray dash indicates no pre-breakout condition
The PBK uses sophisticated conditions to reduce false signals including minimum squeeze length, significant price movement, and technical confirmations.
4.2 Breakout (BK) Indicator
Confirms actual breakouts in progress by identifying:
End of squeeze or strong expansion of Bollinger Bands
Volume expansion
Price moving outside Bollinger Bands
EMA crossovers with volume confirmation
MACD crossovers with significant price range
BK Visual Indicators
"●" (Filled Circle): Confirmed breakout in progress
Green: Upward breakout (bullish)
Red: Downward breakout (bearish)
Orange: Unusual breakout pattern without clear direction
"◆" (Diamond): Special breakout conditions (meets some but not all criteria)
"-" (Dash): Gray dash indicates no breakout detected
The BK indicator uses advanced filters for confirmation:
Requires consecutive breakout signals to reduce false positives
Strong volume confirmation requirements (40% above average)
Significant price movement thresholds
Consistency checks between price action and indicators
5. Market Metrics and Analysis
Price Change Percentage (CHG%)
Displays the current percentage change relative to the previous day's close, color-coded green for positive changes and red for negative changes.
Average Daily Range (ADR%)
Calculates the average daily percentage range over a specified period (default 20 days), helping traders gauge volatility and set appropriate price targets.
Average True Range (ATR)
Shows the Average True Range value, a volatility indicator developed by J. Welles Wilder that measures market volatility by decomposing the entire range of an asset price for that period.
Relative Strength Index (RSI)
Displays the standard 14-period RSI, a momentum oscillator that measures the speed and change of price movements on a scale from 0 to 100.
6. External Market Indicators
QQQ Change
Shows the percentage change in the Invesco QQQ Trust (tracking the Nasdaq-100 Index), useful for understanding broader tech market trends.
UVIX Change
Displays the percentage change in UVIX, a volatility index, providing insight into market fear and potential hedging activity.
BTC-USD
Shows the current Bitcoin price from Coinbase, useful for traders monitoring crypto correlation with equities.
Market Breadth (BRD)
Calculates the percentage difference between ATHI.US and ATLO.US (high vs. low securities), indicating overall market direction and strength.
7. Session Analysis and Volume Direction
Session Detection
The script accurately identifies different market sessions:
Pre-market: 4:00 AM to 9:30 AM
Regular market: 9:30 AM to 4:00 PM
After-hours: 4:00 PM to 8:00 PM
Closed: Outside trading hours
This detection works on any timeframe through careful calculation of current time in seconds.
Buy/Sell Volume Direction
The script analyzes buying and selling pressure by:
Counting up volume when close > open
Counting down volume when close < open
Tracking accumulated volume within the day
Calculating intraday pressure (up volume minus down volume)
Enhanced AVOL Calculation
The improved AVOL calculation works in all timeframes by:
Estimating typical pre-market and after-hours volume percentages
Combining yesterday's after-hours with today's pre-market volume
Calculating this as a percentage of the 21-day average volume
Determining buying/selling pressure by analyzing after-hours and pre-market price changes
Color-coding results: green for buying pressure, red for selling pressure
This calculation is particularly valuable because it works consistently across any timeframe.
Customization Options
Display Settings
The dashboard has two customizable tables: Volume Table and Metrics Table, with positions selectable as bottom_left or bottom_right.
All metrics can be individually toggled on/off:
Pre-market data (PVOL, P$VOL, PRVOL, PCHG%)
Volume data (AVOL, RVOL Day, RVOL 90D, Volume, SEED_YASHALGO_NSE_BREADTH:VOLUME )
Price metrics (ADR%, ATR, RSI, Price Change%)
Market indicators (QQQ, UVIX, Breadth, BTC-USD)
Analysis indicators (Volume Trend, BB Squeeze, Pre-Breakout, Breakout)
These toggle options allow traders to customize the dashboard to show only the metrics they find most valuable for their trading style.
Table and Text Customization
The dashboard's appearance can be customized:
Table background color via tableBgColor
Text color (White or Black) via textColorOption
The indicator uses smart formatting for volume and price values, automatically adding appropriate suffixes (K, M, B) for readability.
MACD Configuration for VTR
The Volume Trend calculation incorporates MACD with customizable parameters:
Fast Length: Controls the period for the fast EMA (default 3)
Slow Length: Controls the period for the slow EMA (default 9)
Signal Length: Controls the period for the signal line EMA (default 5)
MACD Weight: Controls how much influence MACD has on the volume trend score (default 0.3)
These settings allow traders to fine-tune how momentum is factored into the volume trend analysis.
Bollinger Bands and Keltner Channel Settings
The Bollinger Bands and Keltner Channels used for squeeze detection have preset (hidden) parameters:
BB Length: 20 periods
BB Multiplier: 2.0 standard deviations
Keltner Length: 20 periods
Keltner Multiplier: 1.5 ATR
These settings follow standard practice for squeeze detection while maintaining simplicity in the user interface.
Practical Trading Applications
Complete Trading Strategies
1. Squeeze Breakout Strategy
This strategy combines multiple components of the indicator:
Wait for a strong squeeze (SQZ showing ●)
Look for pre-breakout confirmation (PBK showing ● in green or red)
Enter when breakout is confirmed (BK showing ● in same direction)
Use VTR to confirm volume supports the move (VTR ≥ 65 for bullish or ≤ 35 for bearish)
Set profit targets based on ADR (Average Daily Range)
Exit when VTR begins to weaken or changes direction
2. Volume Divergence Strategy
This strategy focuses on the volume trend relative to price:
Identify when price makes a new high but VTR fails to confirm (divergence)
Look for VTR to show weakening trend (● changing to ◯ or ·)
Prepare for potential reversal when SQZ begins to form
Enter counter-trend position when PBK confirms reversal direction
Use external indicators (QQQ, BTC, Breadth) to confirm broader market support
3. Pre-Market Edge Strategy
This strategy leverages pre-market data:
Monitor AVOL for unusual pre-market activity (significantly above 100%)
Check pre-market price change direction (PCHG%)
Enter position at market open if VTR confirms direction
Use SQZ to determine if volatility is likely to expand
Exit based on RVOL declining or price reaching +/- ADR for the day
Market Context Integration
The indicator provides valuable context for trading decisions:
QQQ change shows tech market direction
BTC price shows crypto market correlation
UVIX change indicates volatility expectations
Breadth measurement shows market internals
This context helps traders avoid fighting the broader market and align trades with overall market direction.
Timeframe Optimization
The indicator is designed to work across different timeframes:
For day trading: Focus on AVOL, VTR, PBK/BK, and use shorter momentum periods
For swing trading: Focus on SQZ duration, VTR strength, and broader market indicators
For position trading: Focus on larger VTR trends and use EMA alignment weight
Advanced Analytical Components
Enhanced Volume Trend Score Calculation
The VTR score calculation is sophisticated, with the base score starting at 50 and adjusting for:
Price direction (up/down)
Volume relative to average (high/normal/low)
Volume acceleration/deceleration
Market conditions (bull/bear)
Additional factors are then applied, including:
MACD influence weighted by strength and direction
Volume change rate influence (speed)
Price/volume divergence effects
EMA alignment scores
Volatility adjustments
Breakout strength factors
Price action confirmations
The final score is clamped between 0-100, with values above 50 indicating bullish conditions and below 50 indicating bearish conditions.
Anti-False Signal Filters
The indicator employs multiple techniques to reduce false signals:
Requiring significant price range (minimum percentage movement)
Demanding strong volume confirmation (significantly above average)
Checking for consistent direction across multiple indicators
Requiring prior bar consistency (consecutive bars moving in same direction)
Counting consecutive signals to filter out noise
These filters help eliminate noise and focus on high-probability setups.
MACD Enhancement and Integration
The indicator enhances standard MACD analysis:
Calculating MACD relative strength compared to recent history
Normalizing MACD slope relative to volatility
Detecting MACD acceleration for stronger signals
Integrating MACD crossovers with other confirmation factors
EMA Analysis System
The indicator uses a comprehensive EMA analysis system:
Calculating multiple EMAs (5, 10, 21 periods)
Detecting golden cross (10 EMA crosses above 21 EMA)
Detecting death cross (10 EMA crosses below 21 EMA)
Assessing price position relative to EMAs
Measuring EMA separation percentage
Recent Enhancements and Evolution
Version 5.2 includes several improvements:
Enhanced AVOL to show buying/selling direction through color coding
Improved VTR with adaptive analysis based on market conditions
AVOL display now works in all timeframes through sophisticated estimation
Removed animal symbols and streamlined code with bright colors for better visibility
Improved anti-false signal filters throughout the system
Optimizing Indicator Settings
For Different Market Types
Range-Bound Markets:
Lower EMA Alignment Weight (0.2-0.4)
Higher Speed of Change Weight (0.8-1.0)
Focus on SQZ and PBK signals for breakout potential
Trending Markets:
Higher EMA Alignment Weight (0.7-1.0)
Moderate Speed of Change Weight (0.4-0.6)
Focus on VTR strength and BK confirmations
Volatile Markets:
Enable Volatility Filter
Enable Adaptive Volume Analysis
Lower Momentum Period (2-3)
Focus on strong volume confirmation (VTR ≥ 80 or ≤ 20)
For Different Asset Classes
Equities:
Standard settings work well
Pay attention to AVOL for gap potential
Monitor QQQ correlation
Futures:
Consider higher Volume/RVOL weight
Reduce MACD weight slightly
Pay close attention to SQZ duration
Crypto:
Higher volatility thresholds may be needed
Monitor BTC price for correlation
Focus on stronger confirmation signals
Integrated Visual System for Trading Decisions
The colored circle indicators create an intuitive visual system for quick market assessment:
Progression Sequence: SQZ (Squeeze) → PBK (Pre-Breakout) → BK (Breakout)
This sequence often occurs in order, with the squeeze leading to pre-breakout conditions, followed by an actual breakout.
VTR (Volume Trend): Provides context about the volume supporting these movements.
Color Coding: Green for bullish conditions, red for bearish conditions, and orange/gray for neutral or undefined conditions.
Поиск скриптов по запросу "relative volume"
Liquidity Volume Panel Liquidity Volume Panel – Precision Tool for Scalpers & Intraday Traders
This panel is designed to help traders quickly identify volume-driven moves, liquidity events, and fair-value zones. It combines classic volume analysis with enhanced tools like RVOL and VWAP deviation bands, making it ideal for scalping, momentum trading, and intraday strategies.
🔍 Included Features:
✅ Relative Volume (RVOL) Indicator
Displays current volume in relation to its 20-period average – excellent for spotting low-activity zones or high-pressure breakouts.
✅ Dynamic Volume Coloring & Spike Detection
Color-coded volume logic highlights normal, strong, and extremely high volume, with visual markers for volume spikes (>200% of average).
✅ VWAP with ±1σ & ±2σ Bands
Industry-standard deviation bands show overbought/oversold conditions and dynamic support/resistance based on volume-weighted pricing.
✅ Background Highlighting
Subtle orange background alerts you when volume surges beyond extreme levels – making liquidity clusters instantly recognizable.
Usage:
Use this panel as a decision-making tool for entries, reversals, or breakouts – especially in fast-moving markets.
Best used on lower timeframes for precision scalping.
Candle RvolCandle Rvol is designed to be used on the 10minute chart, using it on other timeframes will result in unintended outcomes.
Candle Rvol has two dynamic features:
- creates and array for every 10m candle over the last 14 trading days, the current candle volume is then compared against the average of the corresponding candles from the past 14 days to give a dynamic relative volume expressed as a percentage (this means the high volume near the open and close does not skew the average volume data)
- for the current candle Rvol percentage, a check is made every 1m during the 10m candle and if the volume is on track to being over 100% the background will dynamically show a green colour.
Liquidation Levels with Liquidity Sweeps/Breakouts [AlgoAlpha]🌊📈 Dive into the depths of market liquidity with "Liquidation Levels with Liquidity Sweeps/Breakouts" - your ultimate tool for navigating the turbulent waters of trading! 🧹💹 Crafted by the wizards at AlgoAlpha, this Pine Script™ masterpiece illuminates the unseen liquidity levels and sweeps, guiding you through the financial seas with insight. 🚀🔍
Key Features:
🕒 Timeframe Flexibility: Customize your analysis with a TimeFrame Multiplier, allowing the indicator to operate on higher timeframes for broader market insight.
💥 Dynamic Volume Threshold: Set your sensitivity to breakouts with the High Volume Threshold, ensuring you catch significant market movements while avoiding fakeouts.
👀 Visibility Controls: Toggle the display of swept liquidity and highlight liquidity breakouts with customizable background colors for clear, actionable insights.
🎨 Custom Appearance: Personalize your chart with bullish, bearish, and breakout colors to match your trading style.
How to Use the Liquidity Levels with Liquidation Sweeps Indicator:
Maximize your trading efficiency with the Liquidity Levels with Liquidation Sweeps Indicator by following these simple steps! 🚀🌟
⚙️ Customize Settings: Access the indicator settings to personalize the TimeFrame Multiplier, High Volume Threshold, and Relative Volume Period. Tailor these settings to match your trading strategy and chart preferences.
👁️ Analyze Liquidity Levels: Monitor the chart for liquidity levels and sweeps. Bullish sweeps are marked with green labels, bearish sweeps with red, and breakouts highlighted by the chart background.
🔔 Set Alerts: Enable alert conditions for liquidity breakouts and sweeps within the indicator's settings. This feature allows you to receive real-time notifications, helping you to act promptly on trading opportunities.
How It Works:
The heart of this indicator lies in its ability to track and highlight liquidity levels derived from swing pivots, and sweeps across multiple timeframes. By calculating relative volume against a user-defined threshold, it identifies strong volume movements indicative of liquidity breakouts, this helps filter out fake-outs. When a liquidity level is breached but not completely mitigated, it's either marked as a bullish or bearish sweep, which come with the option to show an estimate of the number of liquidations during the sweep.
if peakform and peakprinted != 1
aR.push(line.new(bar_index-mult, h.get(1), bar_index+1, h.get(1), color = red))
aRv.push(h.get(1))
peakprinted := 1
if valleyform and valleyprinted != 1
aS.push(line.new(bar_index-mult, l.get(1), bar_index+1, l.get(1), color = green))
aSv.push(l.get(1))
valleyprinted := 1
RVOL/ExpVol/ATR/ExpRGives 4 values:
- Relative Volume: needs the first 5M candle to have closed to give a good value then updates every 5 minute throughout the day. Compares to the historical Volume on the last 30 days on the SAME time period from Open.
Most indicators compare to the average volume on any 30min period, thus highly overestimating the RVOL at Open when Volume is higher.
- Expected Volume on the day in Million of shares given the RVOL.
- Average True Range on the last 14 days
- Expected Range on the day given the ATR & the RVOL.
Warning: Expected Range is just an estimation from data I gathered but the Day's range can be way higher or lower than that. Also if RVOL > 3 then the estimation works less & less.
As this was originally coded just for me I don't ask user input for things like the lookback period or the refresh period. You have to make a copy & go in the code and modify it if you want to change it.
Also the data displayed is given for the candle on which your cursor is !
Works best on 5-minute and above chart timeframes.
Crypto Aggregated Volume «NoaTrader»If you use volume in your crypto analysis, you may have encountered the situation which an exchange's policy change can affect your judgement falsely. For example, you can see the huge difference of volume on the given chart since binance transferred its fee discount from USDT to TUSD pair.
This script sums up volume of all major centralized exchanges ( according to coinmarketcap ) on the symbol you are visiting and has an option to exclude Binance's volume which can give you a more stable understanding for judgement when needed (and you can see the difference on the chart).
The colors also give a good vision about the relative volume in the area which can show the interest of market in trading.
The script only aggregates the same symbol on different exchanges and does not get the volume from other pairs.
Included CEXs are:
binance
bitstamp
coinbase
huobi
kraken
bitfinex
bybit
okx
kucoin
bithumb
RelativeValue█ OVERVIEW
This library is a Pine Script™ programmer's tool offering the ability to compute relative values, which represent comparisons of current data points, such as volume, price, or custom indicators, with their analogous historical data points from corresponding time offsets. This approach can provide insightful perspectives into the intricate dynamics of relative market behavior over time.
█ CONCEPTS
Relative values
In this library, a relative value is a metric that compares a current data point in a time interval to an average of data points with corresponding time offsets across historical periods. Its purpose is to assess the significance of a value by considering the historical context within past time intervals.
For instance, suppose we wanted to calculate relative volume on an hourly chart over five daily periods, and the last chart bar is two hours into the current trading day. In this case, we would compare the current volume to the average of volume in the second hour of trading across five days. We obtain the relative volume value by dividing the current volume by this average.
This form of analysis rests on the hypothesis that substantial discrepancies or aberrations in present market activity relative to historical time intervals might help indicate upcoming changes in market trends.
Cumulative and non-cumulative values
In the context of this library, a cumulative value refers to the cumulative sum of a series since the last occurrence of a specific condition (referred to as `anchor` in the function definitions). Given that relative values depend on time, we use time-based conditions such as the onset of a new hour, day, etc. On the other hand, a non-cumulative value is simply the series value at a specific time without accumulation.
Calculating relative values
Four main functions coordinate together to compute the relative values: `maintainArray()`, `calcAverageByTime()`, `calcCumulativeSeries()`, and `averageAtTime()`. These functions are underpinned by a `collectedData` user-defined type (UDT), which stores data collected since the last reset of the timeframe along with their corresponding timestamps. The relative values are calculated using the following procedure:
1. The `averageAtTime()` function invokes the process leveraging all four of the methods and acts as the main driver of the calculations. For each bar, this function adds the current bar's source and corresponding time value to a `collectedData` object.
2. Within the `averageAtTime()` function, the `maintainArray()` function is called at the start of each anchor period. It adds a new `collectedData` object to the array and ensures the array size does not exceed the predefined `maxSize` by removing the oldest element when necessary. This method plays an essential role in limiting memory usage and ensuring only relevant data over the desired number of periods is in the calculation window.
3. Next, the `calcAverageByTime()` function calculates the average value of elements within the `data` field for each `collectedData` object that corresponds to the same time offset from each anchor condition. This method accounts for cases where the current index of a `collectedData` object exceeds the last index of any past objects by using the last available values instead.
4. For cumulative calculations, the `averageAtTime()` function utilizes the `isCumulative` boolean parameter. If true, the `calcCumulativeSeries()` function will track the running total of the source data from the last bar where the anchor condition was met, providing a cumulative sum of the source values from one anchor point to the next.
To summarize, the `averageAtTime()` function continually stores values with their corresponding times in a `collectedData` object for each bar in the anchor period. When the anchor resets, this object is added to a larger array. The array's size is limited by the specified number of periods to be averaged. To correlate data across these periods, time indexing is employed, enabling the function to compare corresponding points across multiple periods.
█ USING THIS LIBRARY
The library simplifies the complex process of calculating relative values through its intuitive functions. Follow the steps below to use this library in your scripts.
Step 1: Import the library and declare inputs
Import the library and declare variables based on the user's input. These can include the timeframe for each period, the number of time intervals to include in the average, and whether the calculation uses cumulative values. For example:
//@version=5
import TradingView/RelativeValue/1 as TVrv
indicator("Relative Range Demo")
string resetTimeInput = input.timeframe("D")
int lengthInput = input.int(5, "No. of periods")
Step 2: Define the anchor condition
With these inputs declared, create a condition to define the start of a new period (anchor). For this, we use the change in the time value from the input timeframe:
bool anchor = timeframe.change(resetTimeInput)
Step 3: Calculate the average
At this point, one can calculate the average of a value's history at the time offset from the anchor over a number of periods using the `averageAtTime()` function. In this example, we use True Range (TR) as the `source` and set `isCumulative` to false:
float pastRange = TVrv.averageAtTime(ta.tr, lengthInput, anchor, false)
Step 4: Display the data
You can visualize the results by plotting the returned series. These lines display the non-cumulative TR alongside the average value over `lengthInput` periods for relative comparison:
plot(pastRange, "Past True Range Avg", color.new(chart.bg_color, 70), 1, plot.style_columns)
plot(ta.tr, "True Range", close >= open ? color.new(color.teal, 50) : color.new(color.red, 50), 1, plot.style_columns)
This example will display two overlapping series of columns. The green and red columns depict the current TR on each bar, and the light gray columns show the average over a defined number of periods, e.g., the default inputs on an hourly chart will show the average value at the hour over the past five days. This comparative analysis aids in determining whether the range of a bar aligns with its typical historical values or if it's an outlier.
█ NOTES
• The foundational concept of this library was derived from our initial Relative Volume at Time script. This library's logic significantly boosts its performance. Keep an eye out for a forthcoming updated version of the indicator. The demonstration code included in the library emulates a streamlined version of the indicator utilizing the library functions.
• Key efficiencies in the data management are realized through array.binary_search_leftmost() , which offers a performance improvement in comparison to its loop-dependent counterpart.
• This library's architecture utilizes user-defined types (UDTs) to create custom objects which are the equivalent of variables containing multiple parts, each able to hold independent values of different types . The recently added feature was announced in this blog post.
• To enhance readability, the code substitutes array functions with equivalent methods .
Look first. Then leap.
█ FUNCTIONS
This library contains the following functions:
calcCumulativeSeries(source, anchor)
Calculates the cumulative sum of `source` since the last bar where `anchor` was `true`.
Parameters:
source (series float) : Source used for the calculation.
anchor (series bool) : The condition that triggers the reset of the calculation. The calculation is reset when `anchor` evaluates to `true`, and continues using the values accumulated since the previous reset when `anchor` is `false`.
Returns: (float) The cumulative sum of `source`.
averageAtTime(source, length, anchor, isCumulative)
Calculates the average of all `source` values that share the same time difference from the `anchor` as the current bar for the most recent `length` bars.
Parameters:
source (series float) : Source used for the calculation.
length (simple int) : The number of reset periods to consider for the average calculation of historical data.
anchor (series bool) : The condition that triggers the reset of the average calculation. The calculation is reset when `anchor` evaluates to `true`, and continues using the values accumulated since the previous reset when `anchor` is `false`.
isCumulative (simple bool) : If `true`, `source` values are accumulated until the next time `anchor` is `true`. Optional. The default is `true`.
Returns: (float) The average of the source series at the specified time difference.
MZ Adaptive Ichimoku Cloud (Volume, Volatility, Chikou Filter) This study is a functional enhancement to conventionally used Ichimoku Clouds . It uses particular effective adaptive parameters (Relative Volume Strength Index (MZ RVSI ), Volatility and Chikou Backward Trend Filter) to adapt dynamic lengths for Kijun-sen, Tenkan-sen, Senkou-span and Chikou .
This study uses complete available Ichimoku Clouds trading methodology to provide trade confirmations. Its still in experimental phase so will be updated accordingly.
ADAPTIVE LENGTH PARAMETERS
Relative Volume Strength Index (MZ RVSI )
For adaptive length, I tried using Volume and for this purpose I used my Relative Volume Strength Index " RVSI " indicator. RVSI is the best way to detect if Volume is going for a breakout or not and based on that indication length changes.
RVSI breaking above provided value would indicate Volume breakout and hence dynamic length would accordingly make Ichimoku Clouds more over-fitted to better act as support and resistance . Similar case would happen if Volume goes down and dynamic length becomes more under-fit.
Original RVSI Library and study can be found here:
Volatility
Average true range is used as volatility measurement and detection tool. Dual ATR condition would decide over-fitting or under-fitting of curve.
Chikou Backward Trend Filter
Chikou is basically close value of ticker offset to close and it is a good for indicating if close value has crossed potential Support/Resistance zone from past. Chikou is usually used with 26 period.
Chikou filter uses a lookback length calculated from provided lookback percentage and checks if trend was bullish or bearish within that lookback period.
Original Chikou Filter library and study can be found here:
ADAPTIVE ICHIMOKU CLOUD
Tenkan-Sen (Conversion Line)
Tenkan-sen is a moving average that is calculated by taking the average of the high and the low for the last nine periods conventionally but in this study its length is dynamically adapted based on Volume, Volatility and Chikou filter. Default adaption range is set to 9-30 which I found universally applicable to almost every market on all time-frames.
Kijun-Sen (Base Line)
The Kijun-Sen is usually considered a support/resistance line which also acts as an indicator of price movements in the future and takes a longer period into consideration, usually 26 periods compared to Tenkan-Sen’s nine periods is used conventionally. In this study, its length is set to vary in range of 20-60 based on adaptive parameters.
Senkou-Span (Leading Span)
Senkou-Span A : Senkou Span A is the average of the highs and lows of Tenkan-Sen and Kijun-Sen so it automatically adapts accroding to dynamic lengths of Tenkan and Kijun.
Senkou-Span B : Senkou Span B is usually calculated by averaging highs and lows of the past 52 periods and plotting it 26 points to the right but this study uses adaptive parameters to adapt its dynamic length in range of 50-120 which makes Kumo (Ichimoku Cloud) a better area for support and resistance. I don’t consider its necessary to adapt Kumo’s displacement to the right, so I used conventional 26 period as offset.
Chikou -Span (Lagging Span)
The Chikou Span, also known as the lagging span is formed by taking the price source and offsetting it back 26 periods to the left but I used adaptive length in range 26-50 which makes this tool a better option to check for Chikou -Price cross check in wide range.
TRADE SIGNALS & CONFIRMATIONS
Volume : RVSI used to detect volume breakout about given point. By default, On Balance Volume based RVSI is selected for all dynamic length adaption and also for trade confirmations.
Cross(Tenkan,Kijun) : Easiest way to detect trend as if Tenkan is above Kijun then market is uptrend and vice versa.
Volatility : High volatility is a good way to confirm if price is on the move or not.
Tenkan = Kijun : Because of a wide range of Tenkan and Kijun length; their value can become equal before reversal.
Chikou > Source : A very conventional way to detect price momentum as if Chikou is above price then market is in uptrend and vice versa.
Chikou Momentum : Another simpler way to represent Chikou > Source as if momentum of price source is uptrend then price will tend to follow.
Source > Kumo : Using the best tool of Ichimoku Clouds i.e. Kumo. If price crosses both Senkou-Span A & B then market has broken potential resistance leading to a good uptrend and vice versa.
Source > Tenkan : Better way to detect price trend in short term.
Chikou Backward Trend Filter : Different from Chikou >Source in a way that Chikou filter makes sure that price crosses highest/lowest within defined period.
CHARTING
Bars Coloring : Bars coloring is set as following :
src > tenkan-Sen and src > kijun-Sen : Strong uptrend detection and shown by green bars.
src < tenkan-Sen and src < kijun-Sen : Strong downtrend detection and shown by green bars.
src > tenkan-Sen and src < kijun-Sen : Better way to detect bottom reversals as if price comes above tenkan but remains below kijun; that’s early signs of recovery. Light red bars are used for this by default.
src < tenkan-Sen and src > kijun-Sen : Better way to detect top reversals as if price comes below tenkan but remains above kijun; that’s early signs of losing potential in uptrend. Dark Grey bars are used for this by default.
Kumo Coloring : Following steps are used to derive Kumo’s dynamic color:
Average of Senkou-span A and B is calculated.
RSI with 14 period of that average is calculated.
Gradient color based on calculated RSI values with 0-100 range is derived which is final Kumo color.
Chikou Span Coloring : Dynamic coloring from Chikou Filter is used as Indicator’s Chikou ’s color.
Signals Overlay : Red and Green small triangles are used as signals overlay.
Papercuts Dynamic EMA - Relative Parameter FunctionThe goal of this is to link two parameters of different known low and high values so one affects the other.
In this case, I want to link Relative Volume to the length of an EMA, so it responds faster in times of high volume.
As an animator I am used to linking values in this way with Maya using a set driven key, took some work to figure it out in pine.
Looking up this concept, it has a few names, Relative values, linear interpolation, or rescale values.
Thanks to pinecoders for writing the EMA funciton that can accept length variables!
Here's a quick look at the root function to link the two values.
f_relativeVal(_source, in_bot, in_top, out_bot, out_top) =>
// float _source: input signal
// float in_bot : minimum range of input signal.
// float in_top : maximum range of input signal.
// float out_bot : minimum range of output signal.
// float out_top : maximum range of output signal.
clampSrc = _source > in_top ? in_top : _source < in_bot ? in_bot : _source //claps source to create a controlled range
//relInput = (clampSrc - in_bot) / (in_top - in_bot) * 100
inDiffIncrement = (in_top - in_bot)
outDiffIncrement = (out_top - out_bot)
out_bot + (clampSrc - in_bot) * outDiffIncrement / inDiffIncrement // rescale input range to output range
Volume Average / Current Volume / ATR On ChartSimple Study to display volume data and atr value on the chart. It will display the relative volume in percentage, an average volume and the current volume and ATR value for the time resolution.
Thank you to @PriceCatch for the ATR code
[KL] Relative Volume StrategyThis strategy will Long when:
Confirmation #1: when volume is relatively high
Confirmation #2: during periods of price consolidation (See )
It exits when either (a) stop loss limit is reached, or when (b) price actions suggest trend is bearish.
Measuring price volatility to assume consolidation:
For each candlestick, we quantify price volatility by referring to the value of standard deviations (2x) of closing prices over a look-back period of 20 candles. This is exactly what the Bollinger Band (“BOLL”) indicates by default.
Knowing the value of standard deviation (2x) of prices (aka the width of lower/upper BOLL bands), we then compare it with ATR (x2) over a user-defined length (can be configured in settings). Volatility is considered to be low, relatively, when the standard deviation (x2) of prices is less than ATR (2x).
RVSI & MACD Confluence BackgroundThis indicator colors the background in vertical (green/red) stripes to indicate if the current trend is possibly bull / bear
A region where the background is not colored indicates that the present trend can not be identified
The algo combines the RVSI (Relative Volume Strength Index {ref fract} ) and the MACD
The Relative Volume Strength Index has been adapted to include 2 moving averages, one fast and one slow
This same fast slow lookback length is applied to the MACD for simplicity
What's interesting is that there is a very strong confluence between the MACD and RVSI, as the MACD is obtained from 'price action only' and the RVSI from the 'volume only'
So a break in confluence of these two might suggest that the current trend is weakening in confidence or can not be clearly identified
Generally, a green background means consider going long ie price trend is rising
A red background means consider going short ie price trend is falling
An absent background color means - consider exiting current trade or wait to get into a new trade
Best Regards, MoonFlag - and a special thanks/mention to 'fract' for the RVSI algo this is derived from
Volume, Simple Relative Volume HighlightThis script plots volume bars and highlight bars that have an unusual activity, compare to the average (Standard: Simple Moving Average, 50 periods).
The script is useful for checking daily volume levels on equities. Where there is high volume, there is likely volatility, wich is good for day trading and swing trading entries.
Volume+ (RVOL/Alerts)This indicator colors the volume bars based on any of the three follow criteria:
- Volume Amount
- RVOL (Relative Volume)
- Lookback (Highest Over Period)
You can use one, two or all three of these settings at the same time.
You can also set alerts with this indicator. The script will trigger an alert whenever any of the three specified flags are triggered.
RVOL is calculated as: Volume divided by Moving Average value. You can change the moving average period (and type) in the settings.
Trade LightswitchThis script is a follow-up to the following script:
An analysis shows that when BTC relative monthly volume change of retail is greater than non-retail, non-ideal conditions exist to trade (i.e. do not trade). When the default background color is gray, stay out.
BTC Volume Stacked [v2018-11-17] @ LekkerCryptisch.nlCombine the volume of 8 BTCUSD(T) exchanges in one graph.
Two use cases:
1) Stack the absolute volume to see the combined volume in BTC over time.
2) Stack the relative volume to see the relative size of exchange change over time.
Measured Move Volume XIndicator Description
The "Measured Move Volume X" indicator, developed for TradingView using Pine Script version 6, projects potential price targets based on the measured move concept, where the magnitude of a prior price leg (Leg A) is used to forecast a subsequent move. It overlays translucent boxes on the chart to visualize bullish (green) or bearish (red) price projections, extending them to the right for a user-specified number of bars. The indicator integrates volume analysis (relative to a simple moving average), RSI for momentum, and VWAP for price-volume weighting, combining these into a confidence score to filter entry signals, displayed as triangles on breakouts. Horizontal key level lines (large, medium, small) are drawn at significant price points derived from the measured moves, with customizable thresholds, colors, and styles. Exhaustion hints, shown as orange labels near box extremes, indicate potential reversal points. Anomalous candles, marked with diamond shapes, are identified based on volume spikes and body-to-range ratios. Optional higher timeframe candle coloring enhances context. The indicator is fully customizable through input groups for lookback periods, transparency, and signal weights, making it adaptable to various assets and timeframes.
Adjustment Tips for Optimization
To optimize the "Measured Move Volume X" indicator for specific assets or timeframes, adjust the following input parameters:
Leg A Lookback (default: 14 bars): Increase to 20-30 for volatile markets (e.g., cryptocurrencies) to capture larger price swings; decrease to 5-10 for intraday charts (e.g., stocks) for faster signals.
Extend Box to the Right (default: 30 bars): Extend to 50+ for daily or weekly charts to project further targets; shorten to 10-20 for lower timeframes to reduce clutter.
Volume SMA Length (default: 20) and Relative Volume Threshold (default: 1.5): Lower the threshold to 1.2-1.3 for low-volume assets (e.g., commodities) to detect subtler spikes; raise to 2.0+ for high-volume equities to filter noise. Match SMA length to RSI length for consistency.
RSI Parameters (default: length 14, overbought 70, oversold 30): Set overbought to 80 and oversold to 20 in trending markets to reduce premature exit signals; shorten length to 7-10 for scalping.
Key Level Thresholds (default: large 10%, medium 5%, small 5%): Increase thresholds (e.g., large to 15%) for volatile assets to focus on significant moves; disable medium or small lines to declutter charts.
Confidence Score Weights (default: volume 0.5, VWAP 0.3, RSI 0.2): Increase volume weight (e.g., 0.7) for volume-driven markets like futures; emphasize RSI (e.g., 0.4) for momentum-focused strategies.
Anomaly Detection (default: volume multiplier 1.5, small body ratio 0.2, large body ratio 0.75): Adjust the volume multiplier higher for stricter anomaly detection in noisy markets; fine-tune body-to-range ratios based on asset-specific candle patterns.
Use TradingView’s replay feature to test adjustments on historical data, ensuring settings suit the chosen market and timeframe.
Tips for Using the Indicator
Interpreting Signals: Green upward triangles indicate bullish breakout entries when price exceeds the prior high with a confidence score ≥40; red downward triangles signal bearish breakouts. Use these to identify potential entry points aligned with the projected box targets.
Box Projections: Bullish boxes project upward targets (top of box) equal to the prior leg’s height added to the breakout price; bearish boxes project downward. Monitor price action near box edges for target completion or reversal.
Exhaustion Hints: Orange labels near box tops (bullish) or bottoms (bearish) suggest potential exhaustion when price deviates within the set percentage (default: 5%) and RSI or volume conditions are met. Use these as cues to watch for reversals.
Key Level Lines: Large, medium, and small lines mark significant price levels from box tops/bottoms. Use these as potential support/resistance zones, especially when drawn with high volume (colored differently).
Anomaly Candles: Orange diamonds highlight candles with unusual volume/body characteristics, indicating potential reversals or pauses. Combine with box levels for context.
Higher Timeframe Coloring: Enable to color bars based on higher timeframe candle closures (e.g., 1, 2, 5, or 15 minutes) for added trend context.
Customization: Toggle "Only Show Bullish Moves" to focus on bullish setups. Adjust transparency and line styles for visual clarity. Test settings to balance signal frequency and chart readability.
Inputs: Organized into groups (e.g., "Measured Move Settings") using input.int, input.float, input.color, and input.bool for user customization, with tooltips for clarity.
Calculations: Computes relative volume (ta.sma(volume, volLookback)), VWAP (ta.vwap(hlc3)), RSI (ta.rsi(close, rsiLength)), and prior leg extremes (ta.highest/lowest) using prior bar data ( ) to prevent repainting.
Boxes and Lines: Creates boxes (box.new) for bullish/bearish projections and lines (line.new) for key levels. The f_addLine function manages line arrays (array.new_line), capping at maxLinesCount to avoid clutter.
Confidence Score: Combines volume, VWAP distance, and RSI into a weighted score (confScore), filtering entries (≥40). Rounded for display.
Exhaustion Hints: Functions like f_plotBullExitHint assess price deviation, RSI, and volume decrease, using label.new for dynamic orange labels.
Entry Signals and Plots: plotshape displays triangles for breakouts; plot and hline show VWAP and RSI levels; request.security handles higher timeframe coloring.
Anomaly Detection: Identifies candles with small-body high-volume or large-body average-volume patterns via ratios, plotted as diamonds.
Projected 65min VolumeThe script provides relative volume for the first 5min candle after its close vs 14 avg and estimates projected volume for the first 65min candle in the trading session vs avg value.
!!!The indicator is designed to work only at 5min TF!!!
NVOL Normalized Volume & VolatilityOVERVIEW
Plots a normalized volume (or volatility) relative to a given bar's typical value across all charted sessions. The concept is similar to Relative Volume (RVOL) and Average True Range (ATR), but rather than using a moving average, this script uses bar data from previous sessions to more accurately separate what's normal from what's anomalous. Compatible on all timeframes and symbols.
Having volume and volatility processed within a single indicator not only allows you to toggle between the two for a consistent data display, it also allows you to measure how correlated they are. These measurements are available in the data table.
DATA & MATH
The core formula used to normalize each bar is:
( Value / Basis ) × Scale
Value
The current bar's volume or volatility (see INPUTS section). When set to volume, it's exactly what you would expect (the volume of the bar). When set to volatility, it's the bar's range (high - low).
Basis
A statistical threshold (Mean, Median, or Q3) plus a Sigma multiple (standard deviations). The default is set to the Mean + Sigma × 3 , which represents 99.7% of data in a normal distribution. The values are derived from the current bar's equivalent in other sessions. For example, if the current bar time is 9:30 AM, all previous 9:30 AM bars would be used to get the Mean and Sigma. Thus Mean + Sigma × 3 would represent the Normal Bar Vol at 9:30 AM.
Scale
Depends on the Normalize setting, where it is 1 when set to Ratio, and 100 when set to Percent. This simply determines the plot's scale (ie. 0 to 1 vs. 0 to 100).
INPUTS
While the default configuration is recommended for a majority of use cases (see BEST PRACTICES), settings should be adjusted so most of the Normalized Plot and Linear Regression are below the Signal Zone. Only the most extreme values should exceed this area.
Normalize
Allows you to specify what should be normalized (Volume or Volatility) and how it should be measured (as a Ratio or Percentage). This sets the value and scale in the core formula.
Basis
Specifies the statistical threshold (Mean, Median, or Q3) and how many standard deviations should be added to it (Sigma). This is the basis in the core formula.
Mean is the sum of values divided by the quantity of values. It's what most people think of when they say "average."
Median is the middle value, where 50% of the data will be lower and 50% will be higher.
Q3 is short for Third Quartile, where 75% of the data will be lower and 25% will be higher (think three quarters).
Sample
Determines the maximum sample size.
All Charted Bars is the default and recommended option, and ignores the adjacent lookback number.
Lookback is not recommended, but it is available for comparisons. It uses the adjacent lookback number and is likely to produce unreliable results outside a very specific context that is not suitable for most traders. Normalization is not a moving average. Unless you have a good reason to limit the sample size, do not use this option and instead use All Charted Bars .
Show Vol. name on plot
Overlays "VOLUME" or "VOLATILITY" on the plot (whichever you've selected).
Lin. Reg.
Polynomial regressions are great for capturing non-linear patterns in data. TradingView offers a "linear regression curve", which this script uses as a substitute. If you're unfamiliar with either term, think of this like a better moving average.
You're able to specify the color, length, and multiple (how much to amplify the value). The linear regression derives its value from the normalized values.
Norm. Val.
This is the color of the normalized value of the current bar (see DATA & MATH section). You're able to specify the default, within signal, and beyond signal colors. As well as the plot style.
Fade in colors between zero and the signal
Programmatically adjust the opacity of the primary plot color based on it's normalized value. When enabled, values equal to 0 will be fully transparent, become more opaque as they move away from 0, and be fully opaque at the signal. Adjusting opacity in this way helps make difference more obvious.
Plot relative to bar direction
If enabled, the normalized value will be multiplied by -1 when a bar's open is greater than the bar's close, mirroring price direction.
Technically volume and volatility are directionless. Meaning there's really no such thing as buy volume, sell volume, positive volatility, or negative volatility. There is just volume (1 buy = 1 sell = 1 volume) and volatility (high - low). Even so, visually reflecting the net effect of pricing pressure can still be useful. That's all this setting does.
Sig. Zone
Signal zones make identifying extremes easier. They do not signal if you should buy or sell, only that the current measurement is beyond what's normal. You are able to adjust the color and bounds of the zone.
Int. Levels
Interim levels can be useful when you want to visually bracket values into high / medium / low. These levels can have a value anywhere between 0 and 1. They will automatically be multiplied by 100 when the scale is set to Percent.
Zero Line
This setting allows you to specify the visibility of the zero line to best suit your trading style.
Volume & Volatility Stats
Displays a table of core values for both volume and volatility. Specifically the actual value, threshold (mean, median, or Q3), sigma (standard deviation), basis, normalized value, and linear regression.
Correlation Stats
Displays a table of correlation statistics for the current bar, as well as the data set average. Specifically the coefficient, R2, and P-Value.
Indices & Sample Size
Displays a table of mixed data. Specifically the current bar's index within the session, the current bar's index within the sample, and the sample size used to normalize the current bar's value.
BEST PRACTICES
NVOL can tell you what's normal for 9:30 AM. RVOL and ATR can only tell you if the current value is higher or lower than a moving average.
In a normal distribution (bell curve) 99.7% of data occurs within 3 standard deviations of the mean. This is why the default basis is set to "Mean, 3"; it includes the typical day-to-day fluctuations, better contextualizing what's actually normal, minimizing false positives.
This means a ratio value greater than 1 only occurs 0.3% of the time. A series of these values warrants your attention. Which is why the default signal zone is between 1 and 2. Ratios beyond 2 would be considered extreme with the default settings.
Inversely, ratio values less than 1 (the normal daily fluctuations) also tell a story. We should expect most values to occur around the middle 3rd, which is why interim levels default to 0.33 and 0.66, visually simplifying a given move's participation. These can be set to whatever you like and only serve as visual aids for your specific trading style.
It's worth noting that the linear regression oscillates when plotted directionally, which can help clarify short term move exhaustion and continuation. Akin to a relative strength index (RSI), it may be used to inform a trading decision, but it should not be the only factor.
EMA-BAND-PIVOT-VCPThis indicator is named "EMA-BAND-PIVOT-VCP" and integrates multiple elements such as moving averages, volume, volatility contraction patterns (VCP), pivot points, and a table to display key market metrics.
Key Features:
Moving Averages: ( 4 - EMA) default settings 20 , 50 ,144 , 200 . Can be changed in settings.
Pivot Highs and Lows:
The script detects pivot highs and pivot lows using customizable left and right lengths and plots labels to mark these points on the chart.
TIG BAND : This is setting of 2 sma - with the high and low of 90 day average which forms like a band . Its a very strong indicator of trend . Buying is suggestable above this .This has to be tested on your own to knowhow it works wonders ( price magnet). Works on all timeframes . (credit : Bhushan Sir from TIG ) .These are the best buy areas.
Volatility Contraction :
It identifies specific price contraction pattern .
vc marked - used 4 candles - first candle is the mother bar ., 2,3 and 4th candles complete range ( high to low ) is within the range of mother candle.
lc marked -here the closing is considered not the wicks. used 8 candles., the 7 candles closing is within the range of motherbar. Crosses are plotted on the last candle
Table Display:
A table is displayed on the chart with data such as EMA values, relative volume (RVol), Average Daily Range (ADR), and volume ratios. This gives a comprehensive overview of current market conditions.(RVol) compared to the 50-period volume SMA, percentage volume change, and other metrics is also displayed.
MultiWAPThe VWAP tracks the average price, giving weight to each candle based upon its' relative volume.
In other words, high-volume candles move the VWAP faster than low-volume candles.
On a good day, market maker:
-Buys the dip
-Pumps past resistance, causing bullish FOMO
-Sells into the bullish FOMO, causing bearish FOMO
-Buys the dip (rinse and repeat)
By default, MultiWAP begins at the first visible bar.
Range low/high - tracks the most recent high/low
Upper VWAP - tracks retail's average buy price (MM is selling)
Lower VWAP - tracks MM's average buy price (MM is buying)
If price closes below the lower VWAP or the range low, the lower VWAP and range low are reset.
If price closes above the upper VWAP or the range high, the upper VWAP and range high are reset.
Resets are indicated by the dots. Resetting either VWAP moves it close to last price, making it easy to breach again.
A down-trend that lasts many bars will produce a string of green dots. When the accumulation phase ends, price pulls away from the lower VWAP, so it stops resetting. The ABSENCE of green dots tells you that we're in the markup phase/up-trend.
An up-trend that lasts many bars will produce a string of red dots. When the distribution phase ends, price pulls away from the upper VWAP, so it stops resetting. The ABSENCE of red dots tells you that we're in the markdown phase/down-trend.
By default, the net result is two VWAP's that automatically anchor themselves to the most recent, significant, and visible, high and low.
Usage:
For any timeframe, I recommend starting zoomed way out. Find the last green dot and drop an "Anchored VWAP" there. Now, zoom in until that candle is no longer visible. Find the last green dot and drop an anchored VWAP there. Continue doing so until you notice the lower VWAP getting reset to basically the same place.
This works the same, in reverse, during down-trends.
Auto-magnifier / quantifytools- Overview
Auto-magnifier shows a lower timeframe view of candles and volume bars inside any main timeframe candle by zooming into it. Candles and volume bars as they develop are shown chronologically from left to right. By default, magnifier is triggered when less than 3 candles are visible on the chart.
By default, 20 lower timeframe candles are displayed by splitting main timeframe into 20 parts. The amount of candles displayed is a target rate, meaning the script will use a lower timeframe that has the closest match to 20 candles and therefore will vary a bit. Users can override automatic timeframe calculation and opt in to display any specific lower timeframe or adjust amount of candles shown (e.g. 20 -> 30 candles) per each main timeframe candle.
Example
Main timeframe set to 30 minute, candles displayed set to 20 -> Magnifying using 2 minute candles (30 minute/20 candles = 1.5 min, rounded to 2 min)
Main timeframe set to 30 minute, override set to 5 minutes -> Displaying 5 minute candles
Size of volume bars is calculated using relative volume (volume relative to volume SMA20), lowest bar representing relative volume values of under or equal to 1x the moving average and from there onwards progressively growing.
- Limitations and considerations
Amount of candles shown might flow over from the background on smaller screen sizes, in which case you would want to decrease the amount shown. Opposite is true for bigger screens, this value can be increased as more candles fit.
This indicator involves a lot of tricks with text elements to make it work automatically by zooming in. Size of wicks, bodies and volume bars are calculated by adding more text elements on big candles and less text elements on smaller candles. This means the displayed candles won't be a 100% match, but a rather a fair representation of the view, e.g. candle is green = lower timeframe candle is green, candle has a big wick = lower timeframe candle has a big wick (but not a 100% match).
Example
Magnified lower timeframe chart vs. Actual lower timeframe chart
Most mismatch will be found on the price levels where lower timeframe candles are shown, which is sacrificed for the sake of getting a better readability on the overall shape of lower timeframe price action. Users can alternatively optimize calculations for more accuracy, giving a better representation of the price levels where candles truly originated. This typically comes with the cost of worse readability however.
Example
Optimized for readability vs. Optimized for accuracy
- Visuals
All visual elements are fully customizable.
peacefulIndicatorsWe are delighted to present the PeacefulIndicators library, a modest yet powerful collection of custom technical indicators created to enhance your trading analysis. The library features an array of practical tools, including MACD with Dynamic Length, Stochastic RSI with ATR Stop Loss, Bollinger Bands with RSI Divergence, and more.
The PeacefulIndicators library offers the following functions:
macdDynamicLength: An adaptive version of the classic MACD indicator, which adjusts the lengths of the moving averages based on the dominant cycle period, providing a more responsive signal.
rsiDivergence: A unique implementation of RSI Divergence detection that identifies potential bullish and bearish divergences using a combination of RSI and linear regression.
trendReversalDetection: A helpful tool for detecting trend reversals using the Rate of Change (ROC) and Moving Averages, offering valuable insights into possible market shifts.
volume_flow_oscillator: A custom oscillator that combines price movement strength and volume to provide a unique perspective on market dynamics.
weighted_volatility_oscillator: Another custom oscillator that factors in price volatility and volume to deliver a comprehensive view of market fluctuations.
rvo: The Relative Volume Oscillator highlights changes in volume relative to historical averages, helping to identify potential breakouts or reversals.
acb: The Adaptive Channel Breakout indicator combines a moving average with an adjustable volatility multiplier to create dynamic channels, useful for identifying potential trend shifts.
We hope this library proves to be a valuable addition to your trading toolbox.
Library "peacefulIndicators"
A custom library of technical indicators for trading analysis, including MACD with Dynamic Length, Stochastic RSI with ATR Stop Loss, Bollinger Bands with RSI Divergence, and more.
macdDynamicLength(src, shortLen, longLen, signalLen, dynLow, dynHigh)
Moving Average Convergence Divergence with Dynamic Length
Parameters:
src (float) : Series to use
shortLen (int) : Shorter moving average length
longLen (int) : Longer moving average length
signalLen (int) : Signal line length
dynLow (int) : Lower bound for the dynamic length
dynHigh (int) : Upper bound for the dynamic length
Returns: tuple of MACD line and Signal line
Computes MACD using lengths adapted based on the dominant cycle period
rsiDivergence(src, rsiLen, divThreshold, linRegLength)
RSI Divergence Detection
Parameters:
src (float) : Series to use
rsiLen (simple int) : Length for RSI calculation
divThreshold (float) : Divergence threshold for RSI
linRegLength (int) : Length for linear regression calculation
Returns: tuple of RSI Divergence (positive, negative)
Computes RSI Divergence detection that identifies bullish (positive) and bearish (negative) divergences
trendReversalDetection(src, rocLength, maLength, maType)
Trend Reversal Detection (TRD)
Parameters:
src (float) : Series to use
rocLength (int) : Length for Rate of Change calculation
maLength (int) : Length for Moving Average calculation
maType (string) : Type of Moving Average to use (default: "sma")
Returns: A tuple containing trend reversal direction and the reversal point
Detects trend reversals using the Rate of Change (ROC) and Moving Averages.
volume_flow_oscillator(src, length)
Volume Flow Oscillator
Parameters:
src (float) : Series to use
length (int) : Period for the calculation
Returns: Custom Oscillator value
Computes the custom oscillator based on price movement strength and volume
weighted_volatility_oscillator(src, length)
Weighted Volatility Oscillator
Parameters:
src (float) : Series to use
length (int) : Period for the calculation
Returns: Custom Oscillator value
Computes the custom oscillator based on price volatility and volume
rvo(length)
Relative Volume Oscillator
Parameters:
length (int) : Period for the calculation
Returns: Custom Oscillator value
Computes the custom oscillator based on relative volume
acb(price_series, ma_length, vol_length, multiplier)
Adaptive Channel Breakout
Parameters:
price_series (float) : Price series to use
ma_length (int) : Period for the moving average calculation
vol_length (int) : Period for the volatility calculation
multiplier (float) : Multiplier for the volatility
Returns: Tuple containing the ACB upper and lower values and the trend direction (1 for uptrend, -1 for downtrend)